extends Area2D

# 子弹飞行速度
@export var speed :float = 200
# 子弹造成伤害
@export var damage : float = 1
# 子弹方向
var direction : Vector2 = Vector2.RIGHT
var source

func _physics_process(delta: float) -> void:
	# 子弹运行轨迹
	position += direction * speed * delta

# 碰撞检测
func _on_body_entered(body: Node2D) -> void:
	# 如果碰撞的物体有此方法,则调用此方法
	if body.has_method("take_damage"):
		if "might" in source:
			body.take_damage(damage * source.might)
		else:
			body.take_damage(damage)
		body.knockback = direction * 75

# 退出场景检测(这里检测的是离开屏幕)
func _on_screen_exited() -> void:
	queue_free()
